package gsingh.learnkirtan.ui.menu; import gsingh.learnkirtan.ui.menu.controller.HelpMenuController; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.net.URL; import javax.help.CSH; import javax.help.HelpBroker; import javax.help.HelpSet; import javax.help.HelpSetException; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.KeyStroke; @SuppressWarnings("serial") public class HelpMenu extends JMenu implements ActionListener { private HelpMenuController controller; public HelpMenu(HelpMenuController helpMenuController) { super("Help"); this.controller = helpMenuController; JMenuItem helpItem = new JMenuItem("Help", KeyEvent.VK_H); JMenuItem aboutItem = new JMenuItem("About", KeyEvent.VK_A); JMenuItem checkForUpdateItem = new JMenuItem("Check For Updates", KeyEvent.VK_C); // Create HelpSet and HelpBroker objects HelpSet hs = getHelpSet("LearnKirtanHelpSet.hs"); HelpBroker hb = hs.createHelpBroker(); // Assign help to components CSH.setHelpIDString(helpItem, "top"); // Add action listeners helpItem.addActionListener(new CSH.DisplayHelpFromSource(hb)); helpItem.setAccelerator(KeyStroke.getKeyStroke("F1")); aboutItem.setActionCommand("about"); aboutItem.addActionListener(this); checkForUpdateItem.setActionCommand("checkforupdate"); checkForUpdateItem.addActionListener(this); setMnemonic(KeyEvent.VK_H); add(helpItem); add(aboutItem); add(checkForUpdateItem); } /** * Find the HelpSet file and create a HelpSet object */ private HelpSet getHelpSet(String helpSetFile) { HelpSet hs = null; ClassLoader cl = this.getClass().getClassLoader(); try { URL hsURL = HelpSet.findHelpSet(cl, helpSetFile); hs = new HelpSet(null, hsURL); } catch (HelpSetException e) { e.printStackTrace(); } return hs; } @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("about")) { controller.displayAbout(); } else if (command.equals("checkforupdate")) { controller.checkForUpdate(); } } }